'''
Created on 12/05/2013

@author: cristian
'''
from pm.database import db
from sqlalchemy.schema import ForeignKey



class Relaciones(db.Model):
    '''
    clase que representa a los permisos del sistema
    @param id_relacion: identificador de la relacion entre items
    @param id_origen: identificador del item origen
    @param id_destino: identificador del item destino
    @param tipo: tipo de relacion(padre-hijo, antecesor-sucesor)
    @param activo: estado de la relacion activo e inactivo
    @param nombre_origen:   nombre del item origen
    @param nombre_destino: nombre del item destino 
    '''
    __tablename__ = 'relaciones'
    id_relacion = db.Column(db.Integer, primary_key=True, nullable=False)
    id_origen = db.Column(db.Integer, ForeignKey('items.id_item'),nullable=False)
    id_destino = db.Column(db.Integer, ForeignKey('items.id_item'),nullable=False)
    tipo = db.Column(db.Integer, nullable=False)
    activo = db.Column(db.Boolean, nullable=False)
    nombre_origen = db.Column(db.String(50), nullable=False)
    nombre_destino =db.Column(db.String(50), nullable=False)
    
    

    def __init__(self, id_origen, id_destino,tipo, activo,nombre_origen,nombre_destino):
        '''
        Constructor de permisos
        @param id_origen: identificador del item origen
        @param id_destino: identificador del item destino
        @param tipo: tipo de relacion(padre, hijo, antecesor, sucesor)
        @param activo: estado de la relacion activo e inactivo
        @param nombre_origen:   nombre del item origen
        @param nombre_destino: nombre del item destino  
        '''
        self.id_origen = id_origen
        self.id_destino = id_destino
        self.tipo = tipo
        self.activo = activo
        self.nombre_origen= nombre_origen
        self.nombre_destino = nombre_destino
        
        
    def __repr__(self):
        return '{id_relacion:%s, id_origen:%s, id_destino:%s}' % (self.id_relacion, self.id_origen, self.id_destino)
    
    
    def __json__(self):
        '''
        devuelve el json que representa a permisos
        '''
        return {'id':self.id_relacion ,
                'id_origen':self.id_origen,
                'id_destino': self.id_destino,
                'tipo': self.tipo,
                'activo': self.activo,
                'nombre_origen': self.nombre_origen,
                'nombre_destino': self.nombre_destino 
                          
                }
     
    
     
     
     
     
     
